﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CityGames
{
    public class CarroSocio
    {
        private string socio;
        private string juego;
        private string plataforma;
        private string cantidad;
        private string tipo;
        static private CADCarroSocio carroSocios = new CADCarroSocio ();

        public string Tipo
        {
            get { return tipo; }
            set { tipo = value; }
        }

        public string Socio
        {
            get { return socio; }
            set { socio = value; }
        }

        public string Juego
        {
            get { return juego; }
            set { juego = value; }
        }

        public string Plataforma
        {
            get { return plataforma; }
            set { plataforma = value; }
        }

        public string Cantidad
        {
            get { return cantidad; }
            set { cantidad = value; }
        }

        /*************************************************Funciones Ruben ***********************************************/

        /// <summary>
        /// Constructor por defecto de la clase CarroSocio.
        /// Inicializa todos los string a "".
        /// </summary
        public CarroSocio()
        {
            socio = "";
            juego = "";
            plataforma = "";
            cantidad = "";
            tipo = "";
        }


        /// <summary>
        /// Funcion que inserta un juego en la tabla CarroSocios
        /// </summary>        
        /// <param name="socio">
        /// El dni del socio</param>
        /// <param name="juego">
        /// El nombre del juego</param>
        /// <param name="plataforma">
        /// La plataforma del juego</param>
        /// <param name="tipo">
        /// El tipo del juego</param>
        /// <param name="cantidad">
        /// La cantidad de copias del juego</param>
        /// <returns>
        /// Un booleano que indica si se ha insertado correctamente
        /// </returns>
        public bool InsertarJuego(string socio, string juego, string plataforma, string tipo, string cantidad)
        {
            bool ok = false;

            try
            {
                ok = carroSocios.InsertarJuego(socio, juego, plataforma, tipo, cantidad);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return ok;
        }

        /// <summary>
        /// Funcion que borra un juego en la tabla CarroSocios
        /// </summary>
        /// <param name="socio">
        /// El dni del socio</param>
        /// <param name="juego">
        /// El nombre del juego</param>
        /// <param name="plataforma">
        /// La plataforma del juego</param>
        /// <param name="tipo">
        /// El tipo del juego</param>
        /// <returns>
        /// Un booleano que indica si se ha borrado correctamente
        /// </returns>
        public bool BorrarJuego(string socio, string juego, string plataforma, string tipo)
        {
            bool ok = false;

            try
            {
                ok = carroSocios.BorrarJuego(socio, juego, plataforma, tipo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return ok;
        }

        /// <summary>
        /// Funcion que devuelve los juegos insertados en la tabla CarroSocios por el socio que se indica.
        /// </summary>        
        /// <param name="socio">
        /// El dni del socio</param>
        /// <returns>
        /// Un Dataset con los juegos.
        /// </returns>
        public DataSet Juegos(string socio)
        {
            DataSet resultado = new DataSet();

            try
            {
                resultado = carroSocios.Juegos(socio);
            }
            catch (Exception ex)
            {                
                throw ex;
            }

            return resultado;
        }

        /// <summary>
        /// Funcion que modifica la cantidad de un juego en la tabla CarroSocios
        /// </summary>        
        /// <param name="socio">
        /// El dni del socio</param>
        /// <param name="juego">
        /// El nombre del juego</param>
        /// <param name="plataforma">
        /// La plataforma del juego</param>
        /// <param name="tipo">
        /// El tipo del juego</param>
        /// <param name="cantidad">
        /// La cantidad de copias del juego</param>
        /// <returns>
        /// Un booleano que indica si se ha modificado correctamente
        /// </returns>
        public bool ModificarCantidad(string socio, string juego, string plataforma, string tipo, string cantidad)
        {
            bool ok = false;

            try
            {
                ok = carroSocios.ModificarCantidad(socio, juego, plataforma, tipo, cantidad);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return ok;
        }

        /// <summary>
        /// Funcion que devuelve la cantidad de un juego en la tabla CarroSocios
        /// </summary>        
        /// <param name="socio">
        /// El dni del socio</param>
        /// <param name="juego">
        /// El nombre del juego</param>
        /// <param name="plataforma">
        /// La plataforma del juego</param>
        /// <param name="tipo">
        /// El tipo del juego</param>
        /// <returns>
        /// Un entero con el numero de juegos
        /// </returns>
        public int CantidadJuego(string socio, string juego, string plataforma, string tipo)
        {
            int cantidad = 0;

            try
            {
                cantidad = carroSocios.CantidadJuego(socio, juego, plataforma, tipo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return cantidad;
        }

        /*************************************************Fin Funciones Ruben ***********************************************/
    }
}
